package com.wh.wisdomsite.xbox.pr.entity;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 工程项目实体模型
 * @package com.wh.wisdomsite.xbox.pr.entity
 * @author 蔡道行
 * @version V1.0
 * @date 14:05 2018/8/2
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2014
 */
@TableName("pr_project")
public class Project extends Model<Project> {

    /**
     * PK，项目编号
     */
    @TableId(type = IdType.UUID)
    private String prId;

    /**
     * FK, 所属公司
     */
    @TableField("companyId")
    private Integer companyId;

    /**
     * 公司名称
     */
    @TableField(exist = false)
    private String companyName;

    /**
     * FK, 所属部门
     */
    @TableField("officeId")
    private Integer officeId;

    /**
     * 部门名称
     */
    @TableField(exist = false)
    private Integer officeName;

    /**
     * FK，项目类型，字典配置[
     * 1 : 房建
     * 2 : 市政]
     */
    @TableField("prType")
    private  String prType;

    /**
     * 项目类型名称
     */
    @TableField(exist = false)
    private  String prTypeName;

    /**
     *项目代码, 规则
     */
    @TableField("prCode")
    private String prCode;

    /**
     *项目名称
     */
    @TableField("prName")
    private String prName;

    /**
     *项目标段
     */
    @TableField("prLocal")
    private String prLocal;

    /**
     *项目安检备案号
     */
    @TableField("prBackNum")
    private String prBackNum;

    /**
     *项目所属“省”
     */
    @TableField("prProvice")
    private String prProvice;

    /**
     *项目所属“省”名
     */
    @TableField(exist = false)
    private String prProviceName;

    /**
     *项目所属“市”
     */
    @TableField("prCity")
    private String prCity;

    /**
     *项目所属“市” 名
     */
    @TableField(exist = false)
    private String prCityName;

    /**
     *项目所属“区/县”
     */
    @TableField("prDistrict")
    private String prDistrict;

    /**
     *项目所属“区/县”
     */
    @TableField(exist = false)
    private String prDistrictName;

    /**
     *项目地址
     */
    @TableField("prAddres")
    private String prAddres;

    /**
     *项目经度
     */
    @TableField("prLongitude")
    private String prLongitude;

    /**
     *项目纬度
     */
    @TableField("prLatitude")
    private String prLatitude;

    /**
     *项目负责人
     */
    @TableField("prLeader")
    private String prLeader;

    /**
     *项目负责人电话
     */
    @TableField("prLeaderPhone")
    private String prLeaderPhone;

    /**
     *立项文号
     */
    @TableField("prApprovalDocNum")
    private String prApprovalDocNum;

    /**
     *立项级别, 字典配置[
     * 部级
     * 省级
     * 地市级
     * 区县级]
     */
    @TableField("prApprovalLevel")
    private String prApprovalLevel;

    /**
     *立项级别 名称
     */
    @TableField(exist = false)
    private String prApprovalLevelName;

    /**
     *号建设用地规划许可证编
     */
    @TableField("landPlanCertNum")
    private String landPlanCertNum;

    /**
     *建设工程规划许可证编号
     */
    @TableField("prPlanCertNum")
    private String prPlanCertNum;

    /**
     *建设性质, 字典配置[
     * 1 : 新建
     * 2 : 改建
     * 3 : 扩建
     * 4 : 恢复
     * 5 : 迁建
     * 6 : 拆除
     * 7 : 其他]
     */
    @TableField("constructType")
    private String constructType;

    /**
     *建设性质 名称
     */
    @TableField(exist = false)
    private String constructTypeName;

    /**
     *  **工程用途, 字典配置[
     * 房建:
     * 居住建筑
     * 居住建筑配套工程
     * 公共建筑
     * 办公建筑
     * 商业建筑
     * 旅游建筑
     * 科教文卫建筑
     * 交通运输类
     * 通信建筑
     * 公共建筑配套工程
     * 商住楼
     * 农业建筑
     * 农业建筑配套工程
     * 工业建筑
     * 工业建筑配套工程
     * 其他
     *
     * 市政：
     * 给水
     * 排水
     * 燃气
     * 热力
     * 道路
     * 桥隧
     * 风景园林
     * 环境园林
     * 公共交通
     * 其他]
     */
    @TableField("prPurpose")
    private String prPurpose;

    /**
     * 工程用途名称
     */
    @TableField(exist = false)
    private String prPurposeName;

    /**
     *中标通知书编号
     */
    @TableField("zxglNum")
    private String zxglNum;

    /**
     *招标方式, 字典配置[
     * 1 : 委托招标
     * 2 : 自行招标]
     */
    @TableField("bidType")
    private String bidType;

    /**
     *招标方式 名称
     */
     @TableField(exist = false)
    private String bidTypeName;

    /**
     *施工图审查合格书编号
     */
    @TableField("drawingCertCode")
    private String drawingCertCode;

    /**
     *施工许可证编号
     */
    @TableField("buildLicenceCode")
    private String buildLicenceCode;

    /**
     *建设规模(描述)
     */
    @TableField("constructScale")
    private String constructScale;



    /**
     *项目造价(万元)
     */
    @TableField("prCost")
    private BigDecimal prCost;

    /**
     *招标代理机构名称
     */

    @TableField("bidAgencyName")
    private String bidAgencyName;

    /**
     *招标代理机构组织机构代码
     */
    @TableField("bidAgencyCode")
    private String bidAgencyCode;

    /**
     *施工图审查机构名称
     */
    @TableField("drawingOrgName")
    private String drawingOrgName;

    /**
     *施工图审查机构组织机构代码
     */
    @TableField("drawingOrgCode")
    private String drawingOrgCode;

    /**
     *竣工验收备案编号
     */
    @TableField("referenceCode")
    private String referenceCode;

    /**
     *项目计划施工开始日期
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField("prStart")
    private Date prStart;

    /**
     *项目计划施工开始日期 回显
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField(exist = false)
    private Date prStartName;

    /**
     *项目计划施工结束日期
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField("prEnd")
    private Date prEnd;

    /**
     *项目计划施工结束日期 回显
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField(exist = false)
    private Date prEndName;

    /**
     *项目实际施工开始日期
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField("prRealStart")
    private Date prRealStart;

    /**
     *项目实际施工开始日期 回显
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField(exist = false)
    private Date prRealStartName;

    /**
     *项目实际施工结束日期
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField("prRealEnd")
    private Date prRealEnd;

    /**
     *项目实际施工结束日期 回显
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField(exist = false)
    private Date prRealEndName;


    /**
     *项目总投资
     */
    @TableField("prInvest")
    private Double prInvest;


    /**
     * 项目绑定（1.）
     */
    @TableField("prBind")
    private String prBind;

    /**
     *项目总面积(平方米)
     */
    @TableField("prArea")
    private String prArea;

    /**
     *项目实际面积(平方米)
     */
    @TableField("proRealArea")
    private String proRealArea;

    /**
     *项目概述
     */
    @TableField("prRemark")
    private String prRemark;

    /**
     *项目创建时间
     */
    @TableField("createDate")
    private Date createDate;

    /**
     *项目创建时间 回显
     */
    @TableField(exist = false)
    private Date createDateFormat;

    /**
     *项目创建人
     */
    @TableField("createBy")
    private String createBy;

    /**
     *数据状态
     * 1:正常 2:已删除
     */
    @TableField("dataState")
    private Character dataState;

    /**
     * 项目所属【建设单位】
     */
    @TableField(exist = false)
    private  UnitBuild unitBuild;

    /**
     * 项目所属【监测单位】
     */
    @TableField(exist = false)
    private  UnitCheck unitCheck;

    /**
     * 项目所属【设计单位】
     */
    @TableField(exist = false)
    private UnitDesign unitDesign;

    /**
     * 项目所属【勘察单位】
     */
    @TableField(exist = false)
    private UnitInvestigate unitInvestigate;

    /**
     * 项目所属【施工单位】
     */
    @TableField(exist = false)
    private UnitOperator unitOperator;

    /**
     * 项目所属【监理单位】
     */
    @TableField(exist = false)
    private UnitSupervisor unitSupervisor;

    public String getPrId() {
        return prId;
    }

    public void setPrId(String prId) {
        this.prId = prId;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public Integer getOfficeId() {
        return officeId;
    }

    public void setOfficeId(Integer officeId) {
        this.officeId = officeId;
    }

    public String getPrType() {
        return prType;
    }

    public void setPrType(String prType) {
        this.prType = prType;
    }

    public String getPrCode() {
        return prCode;
    }

    public void setPrCode(String prCode) {
        this.prCode = prCode;
    }

    public String getPrName() {
        return prName;
    }

    public void setPrName(String prName) {
        this.prName = prName;
    }

    public String getPrLocal() {
        return prLocal;
    }

    public void setPrLocal(String prLocal) {
        this.prLocal = prLocal;
    }

    public String getPrBackNum() {
        return prBackNum;
    }

    public void setPrBackNum(String prBackNum) {
        this.prBackNum = prBackNum;
    }

    public String getPrProvice() {
        return prProvice;
    }

    public void setPrProvice(String prProvice) {
        this.prProvice = prProvice;
    }

    public String getPrCity() {
        return prCity;
    }

    public void setPrCity(String prCity) {
        this.prCity = prCity;
    }

    public String getPrDistrict() {
        return prDistrict;
    }

    public void setPrDistrict(String prDistrict) {
        this.prDistrict = prDistrict;
    }

    public String getPrAddres() {
        return prAddres;
    }

    public void setPrAddres(String prAddres) {
        this.prAddres = prAddres;
    }

    public String getPrLongitude() {
        return prLongitude;
    }

    public void setPrLongitude(String prLongitude) {
        this.prLongitude = prLongitude;
    }

    public String getPrLatitude() {
        return prLatitude;
    }

    public void setPrLatitude(String prLatitude) {
        this.prLatitude = prLatitude;
    }

    public String getPrLeader() {
        return prLeader;
    }

    public void setPrLeader(String prLeader) {
        this.prLeader = prLeader;
    }

    public String getPrLeaderPhone() {
        return prLeaderPhone;
    }

    public void setPrLeaderPhone(String prLeaderPhone) {
        this.prLeaderPhone = prLeaderPhone;
    }

    public String getPrApprovalDocNum() {
        return prApprovalDocNum;
    }

    public void setPrApprovalDocNum(String prApprovalDocNum) {
        this.prApprovalDocNum = prApprovalDocNum;
    }

    public String getPrApprovalLevel() {
        return prApprovalLevel;
    }

    public void setPrApprovalLevel(String prApprovalLevel) {
        this.prApprovalLevel = prApprovalLevel;
    }

    public String getLandPlanCertNum() {
        return landPlanCertNum;
    }

    public void setLandPlanCertNum(String landPlanCertNum) {
        this.landPlanCertNum = landPlanCertNum;
    }

    public String getPrPlanCertNum() {
        return prPlanCertNum;
    }

    public void setPrPlanCertNum(String prPlanCertNum) {
        this.prPlanCertNum = prPlanCertNum;
    }

    public String getConstructType() {
        return constructType;
    }

    public void setConstructType(String constructType) {
        this.constructType = constructType;
    }

    public String getPrPurpose() {
        return prPurpose;
    }

    public void setPrPurpose(String prPurpose) {
        this.prPurpose = prPurpose;
    }

    public String getZxglNum() {
        return zxglNum;
    }

    public void setZxglNum(String zxglNum) {
        this.zxglNum = zxglNum;
    }

    public String getBidType() {
        return bidType;
    }

    public void setBidType(String bidType) {
        this.bidType = bidType;
    }

    public String getDrawingCertCode() {
        return drawingCertCode;
    }

    public void setDrawingCertCode(String drawingCertCode) {
        this.drawingCertCode = drawingCertCode;
    }

    public String getBuildLicenceCode() {
        return buildLicenceCode;
    }

    public void setBuildLicenceCode(String buildLicenceCode) {
        this.buildLicenceCode = buildLicenceCode;
    }

    public String getConstructScale() {
        return constructScale;
    }

    public void setConstructScale(String constructScale) {
        this.constructScale = constructScale;
    }

    public BigDecimal getPrCost() {
        return prCost;
    }

    public void setPrCost(BigDecimal prCost) {
        this.prCost = prCost;
    }

    public String getBidAgencyName() {
        return bidAgencyName;
    }

    public void setBidAgencyName(String bidAgencyName) {
        this.bidAgencyName = bidAgencyName;
    }

    public String getBidAgencyCode() {
        return bidAgencyCode;
    }

    public void setBidAgencyCode(String bidAgencyCode) {
        this.bidAgencyCode = bidAgencyCode;
    }

    public String getDrawingOrgName() {
        return drawingOrgName;
    }

    public void setDrawingOrgName(String drawingOrgName) {
        this.drawingOrgName = drawingOrgName;
    }

    public String getDrawingOrgCode() {
        return drawingOrgCode;
    }

    public void setDrawingOrgCode(String drawingOrgCode) {
        this.drawingOrgCode = drawingOrgCode;
    }

    public String getReferenceCode() {
        return referenceCode;
    }

    public void setReferenceCode(String referenceCode) {
        this.referenceCode = referenceCode;
    }

    public Date getPrStart() {
        return prStart;
    }

    public void setPrStart(Date prStart) {
        this.prStart = prStart;
    }

    public Date getPrEnd() {
        return prEnd;
    }

    public void setPrEnd(Date prEnd) {
        this.prEnd = prEnd;
    }

    public Date getPrRealStart() {
        return prRealStart;
    }

    public void setPrRealStart(Date prRealStart) {
        this.prRealStart = prRealStart;
    }

    public Date getPrRealEnd() {
        return prRealEnd;
    }

    public void setPrRealEnd(Date prRealEnd) {
        this.prRealEnd = prRealEnd;
    }

    public Double getPrInvest() {
        return prInvest;
    }

    public void setPrInvest(Double prInvest) {
        this.prInvest = prInvest;
    }

    public String getPrArea() {
        return prArea;
    }

    public void setPrArea(String prArea) {
        this.prArea = prArea;
    }

    public String getProRealArea() {
        return proRealArea;
    }

    public void setProRealArea(String proRealArea) {
        this.proRealArea = proRealArea;
    }

    public String getPrRemark() {
        return prRemark;
    }

    public void setPrRemark(String prRemark) {
        this.prRemark = prRemark;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Character getDataState() {
        return dataState;
    }

    public void setDataState(Character dataState) {
        this.dataState = dataState;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public Integer getOfficeName() {
        return officeName;
    }

    public void setOfficeName(Integer officeName) {
        this.officeName = officeName;
    }

    public String getPrTypeName() {
        return prTypeName;
    }

    public void setPrTypeName(String prTypeName) {
        this.prTypeName = prTypeName;
    }

    public String getPrProviceName() {
        return prProviceName;
    }

    public void setPrProviceName(String prProviceName) {
        this.prProviceName = prProviceName;
    }

    public String getPrCityName() {
        return prCityName;
    }

    public void setPrCityName(String prCityName) {
        this.prCityName = prCityName;
    }

    public String getPrDistrictName() {
        return prDistrictName;
    }

    public void setPrDistrictName(String prDistrictName) {
        this.prDistrictName = prDistrictName;
    }

    public String getPrApprovalLevelName() {
        return prApprovalLevelName;
    }

    public void setPrApprovalLevelName(String prApprovalLevelName) {
        this.prApprovalLevelName = prApprovalLevelName;
    }

    public String getConstructTypeName() {
        return constructTypeName;
    }

    public void setConstructTypeName(String constructTypeName) {
        this.constructTypeName = constructTypeName;
    }

    public String getPrPurposeName() {
        return prPurposeName;
    }

    public void setPrPurposeName(String prPurposeName) {
        this.prPurposeName = prPurposeName;
    }

    public String getBidTypeName() {
        return bidTypeName;
    }

    public void setBidTypeName(String bidTypeName) {
        this.bidTypeName = bidTypeName;
    }

    public Date getPrStartName() {
        return prStartName;
    }

    public void setPrStartName(Date prStartName) {
        this.prStartName = prStartName;
    }

    public Date getPrEndName() {
        return prEndName;
    }

    public void setPrEndName(Date prEndName) {
        this.prEndName = prEndName;
    }

    public Date getPrRealStartName() {
        return prRealStartName;
    }

    public void setPrRealStartName(Date prRealStartName) {
        this.prRealStartName = prRealStartName;
    }

    public Date getPrRealEndName() {
        return prRealEndName;
    }

    public void setPrRealEndName(Date prRealEndName) {
        this.prRealEndName = prRealEndName;
    }

    public Date getCreateDateFormat() {
        return createDateFormat;
    }

    public void setCreateDateFormat(Date createDateFormat) {
        this.createDateFormat = createDateFormat;
    }

    public UnitBuild getUnitBuild() {
        return unitBuild;
    }

    public void setUnitBuild(UnitBuild unitBuild) {
        this.unitBuild = unitBuild;
    }

    public UnitCheck getUnitCheck() {
        return unitCheck;
    }

    public void setUnitCheck(UnitCheck unitCheck) {
        this.unitCheck = unitCheck;
    }

    public UnitDesign getUnitDesign() {
        return unitDesign;
    }

    public void setUnitDesign(UnitDesign unitDesign) {
        this.unitDesign = unitDesign;
    }

    public UnitInvestigate getUnitInvestigate() {
        return unitInvestigate;
    }

    public void setUnitInvestigate(UnitInvestigate unitInvestigate) {
        this.unitInvestigate = unitInvestigate;
    }

    public UnitOperator getUnitOperator() {
        return unitOperator;
    }

    public void setUnitOperator(UnitOperator unitOperator) {
        this.unitOperator = unitOperator;
    }

    public UnitSupervisor getUnitSupervisor() {
        return unitSupervisor;
    }

    public void setUnitSupervisor(UnitSupervisor unitSupervisor) {
        this.unitSupervisor = unitSupervisor;
    }

    public String getPrBind() {
        return prBind;
    }

    public void setPrBind(String prBind) {
        this.prBind = prBind;
    }

    @Override
    protected Serializable pkVal() {
        return this.pkVal();
    }
}
